require("GGE")--引用头

引擎{标题 = '基于协程的简便通信'}
__协程列表 = {}
__客户端 = require("PackClient")('客户端')

__客户端.发送_ = __客户端.发送

function __客户端:发送(...)
    local co = tostring(coroutine.running ())
    __协程列表[co] = coroutine.running ()
    print(co,...)
    self:发送_(mp.pack{co,...})

    return coroutine.yield('添加成功')
end
function __客户端:连接成功()

end

function __客户端:连接断开(so,ec)

end

function __客户端:数据到达(data)
    local co,数据 = unpack(mp.unpack(data))
    if __协程列表[co] then
        coroutine.resume(__协程列表[co], 数据)
    end
end

__客户端:连接('127.0.0.1',9876)


--假如客户端调用打开窗口,获取服务器数据
function 打开窗口( ... )
    local 服务器数据 = __客户端:发送(...)
    print(服务器数据)
end

print(coroutine.wrap(打开窗口)(1))




function 引擎:循环函数()

end

function 引擎:输入函数(t)

end
